﻿using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Net;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace RogerioCoimbra.DivulgacaoEspirita.Site.Pagina
{
	public partial class Pesquisa : System.Web.UI.Page
	{
		private const string NomeCookiePesquisa = "PesquisaCentroCeu";

		protected void Page_Load(object sender, EventArgs e)
		{

		}

		protected void ButtonEnviar_Click(object sender, EventArgs e)
		{
			try
			{
				if (Request.Cookies[NomeCookiePesquisa] != null)
				{
					EscreverStatus("Só é permitido responder uma vez por pessoa, suas respostas já foram cadastradas.", true);
					return;
				}

				using (SqlConnection sqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["Pesquisa"].ConnectionString))
				{
					sqlConnection.Open();
					using (SqlCommand sqlCommand = new SqlCommand("INSERT Portal.Pesquisa(Pergunta1, Pergunta2, Pergunta3) VALUES(@Pergunta1, @Pergunta2, @Pergunta3)", sqlConnection))
					{
						sqlCommand.Parameters.Add("Pergunta1", SqlDbType.Int).Value = Pergunta1.SelectedItem.Value;
						sqlCommand.Parameters.Add("Pergunta2", SqlDbType.Int).Value = Pergunta2.SelectedItem.Value;
						sqlCommand.Parameters.Add("Pergunta3", SqlDbType.Int).Value = Pergunta3.SelectedItem.Value;

						if (sqlCommand.ExecuteNonQuery() < 1)
							throw (new Exception());

						Response.Cookies.Add(new HttpCookie(NomeCookiePesquisa));

						EscreverStatus("Respostas cadastras com sucesso, obrigado.", false);
					}
				}
			}
			catch (Exception)
			{
				EscreverStatus("Houve um erro desconhecido, por favor, tente mais tarde.", true);
			}
		}

		/// <summary>
		/// Escreve o Status na Tela.
		/// </summary>
		/// <param name="mensagem"></param>
		/// <param name="erro"></param>
		private void EscreverStatus(string mensagem, Boolean erro)
		{
			LabelMensagem.InnerHtml = mensagem;

			if (erro)
				LabelMensagem.Attributes.Add("style", "color:red;");
			else
				LabelMensagem.Attributes.Remove("style");
		}
	}
}
